Since the technology of optical data storage is general, including the way in which information can be stored in an optical disc, is commonly known, it is not necessary here to explain this technology in great detail. It is briefly summarized that an optical storage disc comprises at least one track, either in the form of a continuous spiral or in the form of multiple concentric circles, of storage space where information may be stored in the form of a data pattern. The storage space is divided into blocks. The data to be written is organized into data sectors, each sector comprising a user data portion and a header portion. A data sector is written into a storage block.
For writing information into the storage space of the optical storage disc, or for reading information from the storage space of the optical storage disc, the storage track is scanned by an optical beam, typically a laser beam. The actual handling of the storage disc is performed by an apparatus that will be indicated as disc drive apparatus. This handling includes the functions of receiving, holding, and rotating the disc. This handling also includes the functions of generating the laser beam(s); directing, focussing and displacing the laser beam(s); suitably modulating the laser beam(s) for writing; sensing the reflected beam(s) for reading. This handling also includes the functions of error correction, deciding which information to write at which physical addresses, etc.
The above-mentioned general functions of the disc drive apparatus are known per se. The present invention is not aiming at improving these general functions; in fact, the present invention may be implemented while using the general functions according to the state of the art. Therefore, a more detailed description and explanation of these general functions is omitted here. It suffices to say that the disc drive apparatus has a data input for receiving data-to-be-stored, and a data output for outputting data-read-from-disc.
Typically, apart from an optical disc as a record medium and a disc drive apparatus for handling the disc, an optical storage system comprises a host apparatus. The host apparatus, which may be a PC running a suitable program, or an application of a consumer apparatus such as a video recorder, is a device which communicates with the disc drive, sending data and commands to the disc drive instructing the disc drive to write the data to a certain storage location, or sending commands to the disc drive instructing the disc drive to read data from a certain storage location, and receiving data from the disc drive. For the purpose of explaining the present invention, it is immaterial what the host intends to do with the data. It suffices to say that the host apparatus has a data input for receiving data-read-from-disc, and a data output for outputting data-to-be-stored. It is to be noted that, when sending data to the disc drive, the host already sends the data in the form of sectors.
When a storage system is operating in write mode, the disc drive can only perform the actual write operation after having received a sector from the host. This restriction does not apply in the case of a storage system operating in read mode: while one sector is being communicated to the host, the disc drive is free to already read a next sector. This feature allows for a streaming read process, i.e. a continuous flow of data to the host, which is especially important in the case of, for instance, audio or video being reproduced from disc.
Usually, audio and video is also written in a streaming process, and the disc drive usually writes the disc in a sequential process, i.e. when a block is full, writing continues at the beginning of the next following block. Based on this fact, a disc drive is designed to operate in a sequential read mode, where blocks are read in a sequential manner. In other words, when a block has been read completely, reading continues automatically at the beginning of the next following block. Such mode of operation is based on the assumption that this block actually is the next block which the host wants to read: this is called “sequential access by the host”. So, normally, there may be a relatively large distance between the block currently being read by a disc drive and the block currently being transferred to the host. The blocks in-between are stored in a block buffer of the disc drive.
In the following, the address of a block which is currently being read by a disc drive will be indicated as Read Block Address RBA, while the address of a block whose data is currently being transferred to the host will be indicated as Transfer Block Address TBA. The distance between RBS and TBA will be indicated as Block Ahead Distance BAD. In practice, BAD can be as high as the entire length of a track.
Usually, information is stored sequentially, indeed, and the sequential read mode is actually the correct way of reading data. However, it may happen that the host intends to make a jump thus terminating its sequential access. In order to assure the streaming read process, the host is capable of signalling to the drive his intention to jump, so that the disc drive can already perform the jump and start reading before the host actually requires the data from the jumped location.
This signalling is executed by the host sending a so-called “set-read-ahead” command. This command typically has the format JUMP(X,Y) containing two parameters X and Y which indicate block addresses of jump-start and jump-end, respectively. For the host, this command has the meaning of saying: “I shall continue to give sequential read commands until I have finished reading block X; then, I shall wish to continue reading at block Y.” For the disc drive, this command has the following meaning: “I shall continue to sequentially read blocks and store their contents in my buffer, until I have read and stored block X; then, I shall make a jump to block Y, and I shall sequentially read blocks from Y onwards.”
A read-ahead command as described above is known per se. However, when this known command was designed, it was assumed that write jumps would always have been made towards a higher address, so only commands JUMP(X,Y) with Y>X were to be expected. Current disc drives are programmed to ignore a read-ahead command JUMP(X,Y) with Y<X, and/or to issue an error message to the host, under the assumption that the host has made a mistake or that the command has been corrupted in some way. This constitutes a problem, especially in the case of BD video recorders, where the data can actually be fragmented and scattered over the entire disc.
Accordingly, an important objective of the present invention is to overcome the above problems.
Particularly, it is an objective of the present invention to provide a modified read-ahead command JUMPm(X,Y) with Y<X in such a way that a disc drive modified in accordance with the present invention will jump back from X to Y only when the command originates from a host modified in accordance with the present invention. If the host is designed in accordance with prior art, i.e. not modified in accordance with the present invention, the disc drive should behave as before, i.e. ignore the command JUMP(X,Y<X) and/or issue an error message to the host.